#include "AVLTree.h"
#include "RBTree.h"
#include <stdlib.h>
#include <vector>
#include "MyMap.h"
#include "MySet.h"

//void Test_AVLTree()
//{
//	AVLTree<int, int> a;
//	srand((long long)time(nullptr));
//	vector<int> v;
//	for (int i = 0; i < 1000; ++i)
//	{
//		v.push_back(i);
//	}
//	//int arr[] = { 1, 2, 3 ,4, 5 };
//	//int arr[] = { 5, 4, 3, 2, 1 };
//	//int arr[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15 };
//	//int arr[] = { 16, 3, 7, 11, 9};
//	//int arr[] = { 16, 3, 7};
//	for (auto e : v)
//	{
//		a.Insert(make_pair(e, e));
//		if (!a.IsBalance())
//			break;
//		cout << e <<  " " << a.IsBalance() << endl;
//	}
//	//a.InOrder();
//}

//void Test_RBTree()
//{
//	RBTree<int, int> a;
//	//int arr[] = { 1, 2, 3 ,4, 5 };
//	//int arr[] = { 5, 4, 3, 2, 1 };
//	int arr[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15 };
//	//int arr[] = { 16, 3, 7, 11, 9};
//	//int arr[] = { 16, 3, 7};
//	for (auto e : arr)
//	{
//		a.Insert(make_pair(e, e));
//	}
//	a.InOrder();
//}

//enum Color
//{
//	RED,
//	BLACK
//};

//template<class T>
//struct RBTreeNode
//{
//	RBTreeNode(const T& data)
//		:_left(nullptr)
//		, _right(nullptr)
//		, _parent(nullptr)
//		, _data(data)
//		, _color(RED)
//	{}
//
//	RBTreeNode<T>* _left;
//	RBTreeNode<T>* _right;
//	RBTreeNode<T>* _parent;
//	T _data;
//	Color _color;
//};

int main()
{
	
	
	/*RBTreeNode<int>* root = new RBTreeNode<int>(2);
	RBTreeNode<int>* left = new RBTreeNode<int>(1);
	RBTreeNode<int>* right = new RBTreeNode<int>(3);

	root->_left = left;
	root->_right = right;

	RBTreeNode<int>* copy = root;*/
	ns_map::test_map();
	ns_set::test_set();
	//Test_AVLTree();
	//Test_RBTree();
	return 0;
}